{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/opt/conda/lib/python3.7/site-packages/qiskit/providers/ibmq/ibmqfactory.py:192: UserWarning: Timestamps in IBMQ backend properties, jobs, and job results are all now in local time instead of UTC.\n",
      "  warnings.warn('Timestamps in IBMQ backend properties, jobs, and job results '\n"
     ]
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "# Importing standard Qiskit libraries and configuring account\n",
    "from qiskit import QuantumCircuit, execute, Aer, IBMQ\n",
    "from qiskit.compiler import transpile, assemble\n",
    "from qiskit.tools.jupyter import *\n",
    "from qiskit.visualization import *\n",
    "# Loading your IBM Q account(s)\n",
    "provider = IBMQ.load_account()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Chapter 13 - Quantum Algorithms"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Helper function to execute circuits\n",
    "from qiskit.providers.ibmq import least_busy\n",
    "\n",
    "# qc = QuantumCircuit to execute, \n",
    "# simulator = boolean, if True then run on qasm simulator, else run on the least busy quantum system\n",
    "def execute_circuit(qc, simulator):\n",
    "    if(simulator):\n",
    "        backend = Aer.get_backend('qasm_simulator')\n",
    "    else:\n",
    "        backend = provider.backends(filters=lambda x: x.configuration().n_qubits > 2\n",
    "                                   and not x.configuration().simulator)\n",
    "    result = execute(qc, backend, shots=1024).result()\n",
    "    return result\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<qiskit.circuit.instructionset.InstructionSet at 0x7fc7a42c76d0>"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# State 1: \n",
    "state1 = QuantumCircuit(2)\n",
    "# Initialize input to |0,0>\n",
    "state1.barrier()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<qiskit.circuit.instructionset.InstructionSet at 0x7fc7a42c7550>"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Prepare the Bell state\n",
    "state1.h(0)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<qiskit.circuit.instructionset.InstructionSet at 0x7fc6e45a3610>"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "state1.cx(0,1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 532.259x204.68 with 1 Axes>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "state1.measure_all()\n",
    "state1.draw()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 504x360 with 1 Axes>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Execute the Bell state \n",
    "result = execute_circuit(state1, True)\n",
    "plot_histogram(result.get_counts(state1))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<qiskit.circuit.instructionset.InstructionSet at 0x7fc6e379aa90>"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# State 2: \n",
    "state2 = QuantumCircuit(2)\n",
    "\n",
    "# Initialize input state to |1,0>\n",
    "state2.x(1)\n",
    "state2.barrier()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 592.459x204.68 with 1 Axes>"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Prepare the Bell state\n",
    "state2.h(0)\n",
    "state2.cx(0,1)\n",
    "state2.measure_all()\n",
    "state2.draw()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 504x360 with 1 Axes>"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Execute the Bell state |PHI+>\n",
    "result = execute_circuit(state2, True)\n",
    "plot_histogram(result.get_counts(state2))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Step 1: Prepare the input qubits, where q0=0, q1=1\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 261.032x204.68 with 1 Axes>"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Implement Deutsch's algorithm for a balanced function\n",
    "qc = QuantumCircuit(2,1)\n",
    "\n",
    "# Prepare the input qubits, where q0=0, q1=1\n",
    "print('Step 1: Prepare the input qubits, where q0=0, q1=1')\n",
    "qc.i(0)\n",
    "qc.x(1)\n",
    "qc.barrier()\n",
    "qc.draw()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Step 2: Place each qubit in superposition by applying a Hadamard\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAS4AAACoCAYAAABe3gMyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/d3fzzAAAACXBIWXMAAAsTAAALEwEAmpwYAAAMx0lEQVR4nO3df2wUZR4G8GenFIq2mpI9JRboWenPla1SIQRy7TYhWkguECgFckegNCmW9gwVD02gEK61QVpZjQp6p8JdPHuh26pcUi/RpLtgasDSO1J+WaOrTRsOq/SPVoGD7t4fjZsU0O7Cdr7z7vt8/nyZnXn4Qp7MzM7u2oLBYBBERAoxpAMQEUWKxUVEymFxEZFyWFxEpBwWFxEph8VFRMphcRGRclhcRKQcFhcRKYfFRUTKYXERkXJYXESkHBYXESmHxUVEymFxEZFyWFxEpBwWFxEph8VFRMphcRGRciZJByD1nT9/ftxtXn31VVRVVf3iNllZWdGKFLM461E84yJTvPbaa9IRtKHDrFlcRKQcFhcRKYfFRabweDzSEbShw6xZXESkHBYXmaK4uFg6gjZ0mDUfhxCw9fOzODU0JHLs3KQkvJiZI3JsCa2dQP+gzLFTkoEVj8kcO9axuAScGhrC0cFL0jG00D8IfPmtdAqKNl4qkikqKyulI2hDh1mzuMgU4z3JTdGjw6xZXGSK/Px86Qja0GHWLC4yxcDAgHQEbegwaxYXESmHxUWmyMnR5xEMaTrMmsVFpmhpaZGOoA0dZs3iIlPs3LlTOoI2dJg1i4tM0dzcLB1BGzrM2tLFFQgE0NjYiPT0dCQkJCA3Nxc+nw+ZmZkoLy+Xjifi+jPPYuTvTdIxYpanzoUT79eFvU4yLP2Rn7KyMrS2tqKmpgZ5eXno6OjA2rVrMTAwgKefflo6HhEJsWxxNTU14dChQ/B6vSgoKAAAFBYWoqurC62trZg7d65wQoqEz+eTjqANHWZt2UvF+vp6FBUVhUrrJ7Nnz0Z8fDycTicA4Ouvv0ZBQQEyMjIwZ84cHDt2TCIujePMmTPSEbShw6wtecbV19eH06dPo7q6+qY/6+3thcPhwJQpUwAAmzZtwurVq7F582Z0dHRg1apV8Pv9mDx58h3nsNlsd7yPW4lr2AMj1zkh+x6P1+uFbd6CqO7zVv9ON3K73eNu53a7oxUpZOX2dszIdkX0mhMfPI+TbY1j1q5dGcashxdHtB+fz4unHi+M6DXjsfKsoyEYDIa1nWWLCwCmT58+Zv3y5cvw+XxYsmQJAOC7777DJ598giNHjgAAFi5ciAceeADt7e144oknzA1NMWP+su2Yv3zHmDVPnUsmDN2SJYvLbrcDAHp6erB06dLQ+t69e3HhwgXk5eUBGD37uv/++0NnXwDw4IMP4ptvvolKjnDbP1KLO4+LfR+Xy+XCx1H+e4XzW39ut3vcd4L37dsXrUghr3wk931cBQUueOr0mbWZLFlcaWlpcDqdqK+vx7Rp05CSkgKPx4O2tjYACBUXqWP37t3SEbShw6wteXPeMAw0NzfD4XCgoqICpaWlsNvtqKysRFxcXOjG/KxZs3Dx4kVcvXo19Fq/34/U1FSp6PQzSkpKpCNoQ4dZW/KMCwAyMjLQ3t4+Zm3dunXIycnB1KlTAYxeUi5atAhvvfVW6OZ8f38/Cguje0PUSiY1viAd4bZkZ2fj3Llz0jHGVbzDG9G6Faky6zth2eK6lc7OTixYMPYdsddffx0bNmzASy+9hMmTJ6OpqSkq7ygSkXUpU1zDw8Po6enB5s2bx6ynpaXh6NGjQqmISIIyxZWYmIiRkRHpGHSbXC6XdARt6DBrS96cp9hz4MAB6Qja0GHWLC4yRUVFhXQEbegwaxYXmcLr9UpH0IYOs2ZxEZFyWFxEpBwWF5ki1h+ItBIdZq3M4xCxJDcpSbtjHz58WOSjKCnJph9S/NhSszaTLThRX4FA2gjnGwvC+RhKVlZWtCLFLM56FC8ViUg5LC4iUg6Li0yxf/9+6Qja0GHWLC4yhcPhkI6gDR1mzeIiU9z4a000cXSYNYuLiJTD4iJTzJs3TzqCNnSYNYuLTPHZZ59JR9CGDrNmcRGRclhcRKQcFheZwuPxSEfQhg6zZnERkXJYXGSK4uJi6Qja0GHW/FobAVs/P4tTQ0Mix85NSsKLmTkix5bQ2gn0D8ocOyUZWPGYzLFjHYtLwKmhIRwdvCQdQwv9g8CX30qnoGjjpSKZorKyUjqCNnSYNYuLTFFVVSUdQRs6zJrFRabIz8+XjqANHWbN4iJTDAwMSEfQhg6zZnERkXJYXGSKnBx9HsGQpsOsWVxkipaWFukI2tBh1iwuMsXOnTulI2hDh1mzuMgUzc3N0hG0ocOsLV1cgUAAjY2NSE9PR0JCAnJzc+Hz+ZCZmYny8nLpeEQkxNLFVVZWhtraWmzatAkffvghSkpKsHbtWnz11VfIy8uTjmea4LVruPZkFUbe+MuY9ZH33se1369HcHhYKFns8dS5cOL9urDXSYZlP6vY1NSEQ4cOwev1hn61pLCwEF1dXWhtbcXcuXOFE5rHFh+PSc/9Edf/sAW2+fNgPPoIgn4/Am//FXHP/wm2xETpiOPy+XzSEbShw6wte8ZVX1+PoqKim35qafbs2YiPj4fT6QQweiMyIyMDhmHE9Beo2X6dCmPjeow0uhG8dAnX9zTAWPZbGM450tHCcubMGekI2tBh1pY84+rr68Pp06dRXV1905/19vbC4XBgypQpAICioiJs2LABGzdujHoOm80W9X0CQFzDHhi5zohfZyxfhuCJTlzfVAn8yg5j/bqI9+H1emGbtyDi1/2SW/073cjtdo+7ndvtjlakkJXb2zEj2xX1/YbD5/PiqccLo7pPK886GoLBYFjbWba4AGD69Olj1i9fvgyfz4clS5aE1hYuXGhqNkk2mw025xwET3bBWFMCW3y8dKSYdOKD53GyrXHM2rUrw5j18GKhRHQjSxaX3W4HAPT09GDp0qWh9b179+LChQum3ZgPt/0jtbjz+G19H1fQ70fg3X/AWL0KgXfehfGbRbDdd19E+3C5XPg4yn+v8+fPj7uN2+0e953gffv2RStSyCsfRf59XPOXbcf85TvGrHnqXBEfu6DABU+dPrM2kyWLKy0tDU6nE/X19Zg2bRpSUlLg8XjQ1tYGAFq9o/iT4P+ujd7XWrEccaXrERwcxEjDPsS9UA+bYdlblSG7d++WjqANHWZtyf/xhmGgubkZDocDFRUVKC0thd1uR2VlJeLi4kI35nUSePsgbJMmwVj3OwBA3OYnEfzvRQRa3hNOFp6SkhLpCNrQYdaWLC4AyMjIQHt7O3744Qf09vaitrYW3d3dyMnJwdSpU6XjmSrw7/8g0PYvxD23DbZJoyfJtrvuQtyzzyDwt3cQ9PuFE44vOztbOoI2dJi1JS8Vf05nZycWLBj7jlhNTQ0OHjyIgYEBdHd3Y8uWLfD5fHjooYeEUkaf8egjMI603rz+sAPGP9U441JF8Q5vROskw7JnXDcaHh5GT0/PTQ+e1tbWoq+vD1evXsX333+Pvr6+mCotIrqZMmdciYmJGBkZkY5Bt8nlcklH0IYOs1bmjIvUduDAAekI2tBh1iwuMkVFRYV0BG3oMGsWF5nC6/VKR9CGDrNmcRGRclhcRKQcFheZ4ty5c9IRtKHDrFlcZIrDhw9LR9CGDrNW5jmuWJKblKTdsXft2iXyGbqUZNMPKX5sqVmbicUl4MXM2P/BTqtY8Zh0ApoIvFQkIuWwuMgU+/fvl46gDR1mzeIiUzgcDukI2tBh1iwuMsWNv9ZEE0eHWbO4iEg5LC4iUg4fh6A7lpWVNe42u3btCms7+mWc9ShbcKJ+g4uIaILwUpGIlMPiIiLlsLiISDksLiJSDouLiJTD4iIi5bC4iEg5LC4iUg6Li4iUw+IiIuWwuIhIOSwuIlIOi4uIlMPiIiLlsLiISDksLiJSDouLiJSjfHF1d3dj5cqVsNvtSEhIQHp6OrZv3y4di4gmkNLfOX/y5Enk5+dj5syZaGhoQGpqKvx+Pzo6OqKy/+de+HNU9kNE4dnzbHlY2yldXFu3bsXdd9+N48eP49577w2tl5WVCaYioomm7I9l/Pjjj0hKSkJVVRVefvll6ThEZCJlz7gGBwcRCAQwY8aMCTsGLxWJzBXupaKyN+eTk5NhGAb6+/uloxCRyZS9VASAwsJCnD17Fl988QXuuece6ThEZBKli+undxVTU1Oxbds2pKamore3F8eOHcObb74pHY+IJoiy97gAIC8vD59++ilqampQXV2NK1euYObMmVizZo10NCKaQEqfcRGRnpS9OU9E+mJxEZFyWFxEpBwWFxEph8VFRMphcRGRclhcRKQcFhcRKYfFRUTKYXERkXJYXESkHBYXESmHxUVEymFxEZFyWFxEpBwWFxEph8VFRMphcRGRclhcRKQcFhcRKYfFRUTKYXERkXJYXESkHBYXESmHxUVEymFxEZFyWFxEpBwWFxEp5//FKXAln6qCaQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 381.432x204.68 with 1 Axes>"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Place each qubit in superposition by applying a Hadamard\n",
    "print('Step 2: Place each qubit in superposition by applying a Hadamard')\n",
    "qc.h(0)\n",
    "qc.h(1)\n",
    "qc.barrier()\n",
    "qc.draw()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 441.632x204.68 with 1 Axes>"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Add a CNOT gate with the Control on q0 and Target on q1\n",
    "qc.cx(0,1)\n",
    "# Draw the circuit\n",
    "qc.draw()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 562.032x204.68 with 1 Axes>"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Add the Hadamard gates to all qubits\n",
    "qc.h(0)\n",
    "qc.h(1)\n",
    "qc.barrier()\n",
    "qc.draw()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 622.232x204.68 with 1 Axes>"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Add measurement operator to the first qubit\n",
    "qc.measure(0,0)\n",
    "qc.draw()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Step 6: Execute the quantum circuit to view results.\n",
      "{'1': 1024}\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 504x360 with 1 Axes>"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Execute the quantum circuit on the simulator first to confirm our results.\n",
    "print('Step 6: Execute the quantum circuit to view results.')\n",
    "backend = Aer.get_backend('qasm_simulator')\n",
    "result = execute(qc, backend=backend, shots=1024).result()\n",
    "counts = result.get_counts(qc)\n",
    "\n",
    "# Print and plot our results\n",
    "print(counts)\n",
    "plot_histogram(counts, title='Balanced function')\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Accordion(children=(VBox(layout=Layout(max_width='710px', min_width='710px')),), layout=Layout(max_height='500…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/javascript": [
       "$('div.job_widget')\n",
       "        .detach()\n",
       "        .appendTo($('#header'))\n",
       "        .css({\n",
       "            'z-index': 999,\n",
       "             'position': 'fixed',\n",
       "            'box-shadow': '5px 5px 5px -3px black',\n",
       "            'opacity': 0.95,\n",
       "            'float': 'left,'\n",
       "        })\n",
       "        "
      ],
      "text/plain": [
       "<IPython.core.display.Javascript object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The least busy device: ibmqx2\n"
     ]
    }
   ],
   "source": [
    "#Import the least_busy module and enable Qiskit job watcher\n",
    "from qiskit.providers.ibmq import least_busy\n",
    "%qiskit_job_watcher\n",
    "\n",
    "#Identify the least busy devices \n",
    "backend_devices = provider.backends(filters=lambda x: x.configuration().n_qubits > 2\n",
    "                                   and not x.configuration().simulator)\n",
    "# Assign least busy device to backend\n",
    "backend = least_busy(backend_devices)\n",
    "\n",
    "#Print the least busy device\n",
    "print('The least busy device: {}'.format(least_busy(backend_devices)))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'0': 82, '1': 942}\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 504x360 with 1 Axes>"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Execute the previous constant circuit on a quantum device\n",
    "result = execute(qc, backend=backend, shots=1024).result()\n",
    "counts = result.get_counts(qc)\n",
    "# Print and plot results\n",
    "print(counts)\n",
    "plot_histogram(counts, title='Balanced function')\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 321.377x385.28 with 1 Axes>"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Create the quantum circuit with both input registers X, and y\n",
    "input_qubits = 4  # Refers to our X input register, 4-qubits\n",
    "ancilla_qubit = 1 # Refers to our y input register, 1-qubit\n",
    "\n",
    "# Total qubits in our quantum circuit\n",
    "total_qubits = input_qubits + ancilla_qubit\n",
    "\n",
    "# Generate the circuit\n",
    "qc = QuantumCircuit(total_qubits, input_qubits)\n",
    "# Set the X qubits in superposition\n",
    "for idx in range(input_qubits):\n",
    "    qc.h(idx)\n",
    "    \n",
    "# Set the y qubit to 1, then apply a Hadamard\n",
    "qc.x(input_qubits)\n",
    "qc.h(input_qubits)\n",
    "\n",
    "qc.barrier()\n",
    "qc.draw()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 441.777x385.28 with 1 Axes>"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Set the bit string which we wish to evaluate, in this case lets set '1010', where I indicates value 0, and x indicates value 1.\n",
    "qc.i(0)\n",
    "qc.x(1)\n",
    "qc.i(2)\n",
    "qc.x(3)\n",
    "\n",
    "qc.barrier()\n",
    "qc.draw()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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Qq0Bd7ChFxl+AAf5+fmmI1iDWgPuYEMvMvwAAACrMPwAAACr8FF3WGvw4MGtrrN48eKI1oMzag24A70Y5gmFQiHTIQAAABKF014AAMAqDD8AAMAqDD8AAMAqDD8AAMAqDD8AAMAqDD8AAMAqDD8JVlRUpJQUbq8EAIApDD8JtGnTJtXV1ZmOAQCA1bjJYYKcPn1at9xyi1588UVdc801qq+vNx0JAAArceQnQX7yk59o1qxZuvrqq01HAQDAagw/CfD2229r69atmjlzpukoAABYj+EnAV5//XXt27dPffv2VZ8+fdTQ0KA+ffros88+Mx0NAADrcM2PASkpKVzzAwCAIRz5AQAAVuHIj2GhUEgej8d0DAAArMGRH8MCW3fruRdfVX1Dg+koAABYIemHnz/+8Y+66667lJGRofT0dA0cOFALFiwwHSsip0+f0catu3W2vkEpPp/pOAAAWCGpn7OwY8cOjRs3Tj179tQTTzyh3r17q7KyUps3bzYdLSKbd+7ViVOn9Vc3jTAdBQAAayT1NT8FBQXat2+f3n33XV155ZVx2cfDP30mLtsFAACx8/iPZke8btKe9jpx4oQ2bdqk6dOnx23wAQAAbU/Snvaqra1VMBhUjx494rqfaCbJSJ0+fUY//cVq9crspv8zZWLMtw8AAFqWtMNP586d5fV6dejQobjuJ56nvQ4crOK0GgAAMWDFaa/27dtr3LhxWr16NY+JAAAAEUvqC57Pfdqrd+/e+uEPf6jevXurqqpKmzZt0j//8z+bjtesDW+8pf/auE1F356sntd0NR0HAADrJO1pL0nKy8vTG2+8oYULF2r+/Pk6deqUevbsqXvuucd0tGadPn1Gm958W4P792LwAQDAkKQ+8pNsDn98VM++8Kru+cYtDD8AABjC8JNgwWBQXm/SXmoFAEDSY/gBAABW4RAEAACwCsMPAACwCsMPAACwCsMPAACwCsMPAACwCsMPAACwCsMPAACwCsMPAACwCsMPAACwCsMPAACwCsMPAACwCsMPAACwCsMPAACwCsMPAACwCsMPAACwCsMPAACwCsMPAACwCsMPAACwCsMPAACwCsMPAACwCsMPAACwCsMPAACwCsMPAACwCsMPAACwCsMPAACwCsMPAACwCsMPAACwyv8HEtQL6pyfGeUAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 742.777x385.28 with 1 Axes>"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Set oracle to either constant (output = 0s) \n",
    "# or balanced (output = 1s)\n",
    "\n",
    "# In this example we will choose a balanced function \n",
    "for idx in range(input_qubits):\n",
    "    qc.cx(idx, input_qubits)\n",
    "\n",
    "qc.barrier()\n",
    "qc.draw()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 863.177x385.28 with 1 Axes>"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Set the closing bit string we selected earlier to evaluate\n",
    "qc.i(0)\n",
    "qc.x(1)\n",
    "qc.i(2)\n",
    "qc.x(3)\n",
    "\n",
    "qc.barrier()\n",
    "qc.draw()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAvUAAAExCAYAAAD8012yAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/d3fzzAAAACXBIWXMAAAsTAAALEwEAmpwYAAAyfklEQVR4nO3df3xU9Z3v8ffMJPKjUMFGRZEf8iOQRBMBQZCWhF7WBddWrkKU27Jeyl0ohLbQstZdFMtCeVhE073dSrfdVnZXiwsBLe2iu7olgYogiFD5ZRTRNCxFClEJv5OZ+8dcggFyMgMz3+858309Hw8eyMnJmbdv/R4+c3JmJhSLxWICAAAAEFhh2wEAAAAAXB6GegAAACDgGOoBAACAgGOoBwAAAAKOoR4AAAAIOIZ6AAAAIOAY6gEAAICAY6gHAAAAAo6hHgAAAAg4hnoAAAAg4BjqAQAAgIBjqAcAAAACjqEeAAAACDiGegAAACDgGOoBAACAgGOoBwAAAAKOoR4AAAAIOIZ6AAAAIOAY6gEAAICAY6gHAAAAAi7LdgDAlj179rS6zz/8wz9oxowZnvv0798/VZEyFl0D/sBaNIeuzaHrOK7UAx5+/OMf247gDLoG/IG1aA5dm+NC1wz1AAAAQMAx1AMAAAABx1APeKioqLAdwRl0DfgDa9EcujbHha4Z6gEAAICAY6gHPIwbN852BGfQNeAPrEVz6NocF7rmLS0tWLVF2l9n57G7dpbuudXOYyNx33l7l7YfPWr8cYs6dtQT/fKNPy4AcN4zx9YcwgySXgz1Fuyvk/Z+aDsF/Gz70aNaV3fEdgwAMIbznjnMIZmJ228AD2VlZbYjOIOuAX9gLZpD1+a40DVDPeChtU+fQ+rQNeAPrEVz6NocF7pmqAc8jBgxwnYEZ9A14A+sRXPo2hwXumaoBzwcOnTIdgRn0DXgD6xFc+jaHBe6ZqgHAAAAAo6hHvCQn+/W25zZRNeAP7AWzaFrc1zomqEe8LBy5UrbEZxB14A/sBbNoWtzXOiaoR7wMHfuXNsRnEHXgD+wFs2ha3Nc6NrXQ300GtXixYvVt29ftW3bVkVFRaqqqlK/fv00ZcoU2/GMqVhQotdfWJDwdqTOihUrbEdIWsPs76rx2WW2YyQtKF0f/FhauVma94L0yErpqf+SttdI0ajtZEBqBGUtfhrnvfTKhDkkKF1fDl9/ouzkyZO1atUqPfLIIxo0aJA2bNigCRMm6NChQ/r2t79tOx4Ax7zxvvTsBikaO7et/qBU/UepoKs06QtSVsRaPACAw3w71C9btkxLly5VZWWliouLJUkjR47U1q1btWrVKg0cONByQgAuqT1y4UAvSbH//+ed+6XVb0r33Go+GwAAvr39ZuHChRo9enTTQH9Wnz59lJ2drcLCQknS+++/r+LiYuXm5urmm2/W+vXrbcRFhqqqqrIdwRl+73rd2+cG+Ja89q504rSZPEC6+H0tZhK6NseFrn15pb62tlY7duzQrFmzLvhaTU2NCgoK1KZNG0nS1KlTdd9992n69OnasGGDxo8fr3379umKK65ISZZQKJSS43zavXPW6oa8kqS+5/VffV9vrFncbNuZk/XqftOopI5TVVWpb94xMqnvyVQX+//rfHv37lXv3r099ykvL09VpCaRxx9TuKgw5cdtTWVlpUKDh6b8uH7uOlFf/2md2rTv5LnPmUbp5uH3aO+W582EApLk57XIee/i0tG1rTkkXTOIn7u+XLHWriZ9ii+v1NfW1kqSunTp0mz7iRMnVFVV1XTrzZ/+9Cf97ne/0+TJkyVJt99+u66//nqtXbvWbGADhtw9R9N++lGzX9fnft52rIy3evVq2xGc4feus7LbJbZfm/ZpTgKkl9/XYiYJUtdBn0OC1PWl8uWV+pycHElSdXW17rzzzqbtixYt0oEDBzRo0CBJ8av21157bdNVe0m68cYb9cEHH6QsSzLPkBL1o5elvR+m/LAJKS4uUcWC1P87BdGePXta3ae8vLzVd1p68sknUxWpyagtm7Su7kjKj9uakpISvZKG/+f93HWiFv5aOvSJ1Fo7L73wjHrmPGMkE5AsP69FznsXl46ubc0h6ZpB/Ny1Sb4c6nv16qXCwkItXLhQV111lbp27aqKigqtWbNGkpqGegAwZXhf6fk3Wv56SNK1V0o9PmcsEgAATXx5+004HNaKFStUUFCgadOmadKkScrJyVFZWZkikUjTi2S7d++ugwcP6tSpU03fu2/fPvXo0cNWdGSYefPm2Y7gDL93PbSPdH2ni38tJCkUkv7noPjvQJD5fS1mEro2x4WufXmlXpJyc3MvuDd+4sSJys/PV7t28Xtbc3JyNHz4cP385z9veqHs/v37NXJkZr0QdNzDlUltR+qU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\n",
      "text/plain": [
       "<Figure size 983.577x385.28 with 1 Axes>"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Add the Hadamard gates to complete wrapping the oracle\n",
    "for idx in range(4):\n",
    "    qc.h(idx)\n",
    "\n",
    "qc.barrier()\n",
    "qc.draw()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1224.38x385.28 with 1 Axes>"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Add measurements only to our inputs\n",
    "qc.measure(range(4),range(4))\n",
    "\n",
    "# Draw the circuit\n",
    "qc.draw()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'1111': 1024}\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 504x360 with 1 Axes>"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Execute the circuit\n",
    "backend = Aer.get_backend('qasm_simulator')\n",
    "result = execute(qc, backend=backend, shots=1024).result()\n",
    "counts = result.get_counts(qc)\n",
    "\n",
    "# Print and plot results\n",
    "print(counts)\n",
    "plot_histogram(counts)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Accordion(children=(VBox(layout=Layout(max_width='710px', min_width='710px')),), layout=Layout(max_height='500…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/javascript": [
       "$('div.job_widget')\n",
       "        .detach()\n",
       "        .appendTo($('#header'))\n",
       "        .css({\n",
       "            'z-index': 999,\n",
       "             'position': 'fixed',\n",
       "            'box-shadow': '5px 5px 5px -3px black',\n",
       "            'opacity': 0.95,\n",
       "            'float': 'left,'\n",
       "        })\n",
       "        "
      ],
      "text/plain": [
       "<IPython.core.display.Javascript object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[<IBMQBackend('ibmqx2') from IBMQ(hub='ibm-q', group='open', project='main')>,\n",
       " <IBMQBackend('ibmq_16_melbourne') from IBMQ(hub='ibm-q', group='open', project='main')>,\n",
       " <IBMQBackend('ibmq_vigo') from IBMQ(hub='ibm-q', group='open', project='main')>,\n",
       " <IBMQBackend('ibmq_ourense') from IBMQ(hub='ibm-q', group='open', project='main')>,\n",
       " <IBMQBackend('ibmq_valencia') from IBMQ(hub='ibm-q', group='open', project='main')>,\n",
       " <IBMQBackend('ibmq_santiago') from IBMQ(hub='ibm-q', group='open', project='main')>]"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#Enable the job watcher widget\n",
    "%qiskit_job_watcher\n",
    "\n",
    "# Print all backends with at least 5 or more qubits\n",
    "provider.backends(filters=lambda x: x.configuration().n_qubits >= total_qubits and not x.configuration().simulator and x.status().operational==True)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'0000': 20, '0001': 22, '0010': 24, '0011': 45, '0100': 31, '0101': 35, '0110': 51, '0111': 139, '1000': 30, '1001': 29, '1010': 28, '1011': 90, '1100': 61, '1101': 81, '1110': 60, '1111': 278}\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAc0AAAFMCAYAAACpqedgAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/d3fzzAAAACXBIWXMAAAsTAAALEwEAmpwYAABGUElEQVR4nO3deXxU9b3/8dcXAgEKWPYlgQYMRBKWEMIPUQRqtShWrBZFW0XrrlRBLy6tllLvtaC1Vq0FvFzbulSCSwVXCkUBoxgMCLIoIAlIIosCCggEE76/P74ncTIk4cwWJuT9fDzmwcyZM5/znTPhfM75bsdYaxEREZFja3C8CyAiIlJXKGmKiIj4pKQpIiLik5KmiIiIT0qaIiIiPilpioiI+KSkKSIi4lNCbW/QGHMzcAfQCVgLTLDWvlPNusOAKUAa0AzYAvyftfahgHWuA8YCvQEDfAj81lqbe6yytG3b1qakpET0fURE5MSyfPnyL6217ap6r1aTpjFmDPAocDOQ6/37pjEm3Vr7WRUf2Q88BqwGDgCnA08YYw5Ya6d56wwHZgO3euvcBvzbGJNprd1YU3lSUlLIz8+P/IuJiMgJwxizpdr3anNGIGNMHvCRtfa6gGUbgRettb/2GeNfQIm19rJq3jfANuB+a+1faoqVnZ1tlTRFRCSQMWa5tTa7qvdqrU3TGNMYGADMD3prPnCazxj9vXUX17BaY6AJsCeMYoqIiFSrNjsCtQUaAjuClu8AOtb0QWNMkTGmBMgHpllrZ9Sw+v/gqnVfiaCsIiIiR6n1jkBhOgNoDpwKPGCMKbTWPhO8kjFmPHADcJa1dm9VgYwx1wPXA3Tu3JlFixYB0L17d1q0aMGqVasAaNOmDRkZGSxZsgSAhIQEhgwZwooVK9i714XOzs5mx44dbN26FYAePXqQmJjImjVrAGjfvj09e/YkN9f1SUpMTGTw4MHk5+ezf/9+AAYNGkRRURHFxcUApKWl0bBhQ9atWwdAx44d6datG0uXLgWgadOmDBo0iLy8PA4ePAjA4MGDKSwsZPv27QCkp6dTVlbG+vXrAUhKSiI5OZm8vDwAmjdvTnZ2NkuXLqWkpASAIUOGsGHDBnbu3AlA7969KSkpYeNG1yzcpUsXOnToUNEG3LJlS7KyssjNzaW0tBSAoUOHsnbtWnbt2gVAv3792LdvHwUFBYBrQ27dujUrVqwAoFWrVvTr14/FixdjrcUYw7Bhw1i1ahV79riKgqysLHbv3s3mzZv1O+l30u+k36lWfqea1Fqbplc9ewC4zFr7QsDyvwK9rbXDfMa5F/iltfbkoOUTgP8GzvXTcxbUpikiIkeLizZNa+1hYDlwdtBbZwPvhRCqAZAYuMAYczsuYZ7nN2GKiIiEqrarZx8GnjHGLAPeBW4EOgMzAIwxTwNYa8d6r28BCoH13ueHAhOB8uEmGGPuAO4HLgc2GGPK20cPWmu/jvUXEhGR+qNWk6a1drYxpg1wL25ygzXASGtt+ZiYrkEfaQg8AKQApcAm4G68JOsZBzTCjdUM9BRwVRSLLyIi9VytjtOMN2rTFBGRYHHRpikiIlLXKWmKiIj4pKQpIiLik5KmiIiIT0qaIiIiPilpioiI+KSkKSIi4pOSpoiIiE9KmiIiIj4paYqIiPikpCkiIuKTkqaIiIhPSpoiIiI+KWmKiMhxNW/ePNLS0khNTWXq1KlHvf/www+Tnp5O3759+dGPfsSWLe5ukm+//TaZmZkVjyZNmjBnzhwAHn/8cVJTUzHG8OWXX0atrLo1mG4NJiJy3JSVldGzZ08WLFhAcnIyAwcOZNasWaSnp1es8/bbbzNo0CCaNWvG9OnTWbRoEbNnV76F8u7du0lNTaWoqIhmzZrx4Ycf0qpVK4YPH05+fj5t27b1XSbdGkxEROLSsmXLSE1NpXv37jRu3JhLL72UuXPnVlrnhz/8Ic2aNQPg1FNPpaio6Kg4L774Iueee27Fev379yclJSXq5VXSFBGR46a4uJguXbpUvE5OTqa4uLja9Z988knOPffco5bn5ORw2WWXxaSMgRJivgUREZEoePbZZ8nPz2fx4sWVlm/bto3Vq1czYsSImJdBSVNERI6bpKQktm7dWvG6qKiIpKSko9b7z3/+w/3338/ixYtJTEys9N7zzz/PhRdeSKNGjWJeXlXPiojIcTNw4EA2btxIYWEhhw8fJicnh1GjRlVa58MPP+SGG27glVdeoX379kfFmDVrVq1UzYKSpoiIHEcJCQk8/vjjjBgxgl69enHJJZeQkZHBpEmTeOWVVwC444472L9/PxdffDGZmZmVkurmzZvZunUrw4YNqxT3scceIzk5maKiIvr27cu1114blfJqyImGnIiISAANOREREYkCJU0RERGflDRFRER8UtIUERHxSUlTRETEJyVNERERn5Q0RUREfFLSFBER8UlJU0RExCclTREREZ+UNEVERHxS0hQREfFJ99MUEZG4dd0j/tedOSFWpfiOrjRFRER8UtIUERHxSUlTRETEJyVNERERn5Q0RUREfFLSFBER8UlJU0RExCclTREREZ+UNEVERHxS0hQREfFJSVNERMQnJU0RERGflDRFRER8UtIUERHxSUlTRETEJyVNERERn5Q0RUREfFLSFBER8UlJU0RExCclTREREZ+UNEVERHyq9aRpjLnZGFNojDlkjFlujDmjhnUvMsbMN8Z8YYzZZ4zJM8aMqmH9y4wx1hjzWmxKLyIi9VmtJk1jzBjgUeAPQH/gPeBNY0zXaj4yDHgLOM9b/w3g5aoSrTGmO/BH4J0YFF1ERKTWrzRvB/5hrZ1prf3YWnsLsA24qaqVrbXjrbVTrbXLrLWfWmt/DywHfhq4njGmETALuAcoiOk3EBGReqvWkqYxpjEwAJgf9NZ84LQQQrUA9gQtux/YbK19KvwSioiI1CyhFrfVFmgI7AhavgM4y08AY8w4IBl4JmDZj4FLgEyfMa4Hrgfo3LkzixYtAqB79+60aNGCVatWAdCmTRsyMjJYsmQJAAkJCQwZMoQVK1awd+9eALKzs9mxYwdbt24FoEePHiQmJrJmzRoA2rdvT8+ePcnNzQUgMTGRwYMHk5+fz/79+wEYNGgQRUVFFBcXA5CWlkbDhg1Zt24dAB07dqRbt24sXboUgKZNmzJo0CDy8vI4ePAgAIMHD6awsJDt27cDkJ6eTllZGevXrwcgKSmJ5ORk8vLyAGjevDnZ2dksXbqUkpISAIYMGcKGDRvYuXMnAL1796akpISNGzcC0KVLFzp06EB+fj4ALVu2JCsri9zcXEpLSwEYOnQoa9euZdeuXQD069ePffv2UVDgLv5TUlJo3bo1K1asAKBVq1b069ePxYsXY63FGMOwYcNYtWoVe/a486KsrCx2797N5s2b9Tvpd9LvVC9/p+H4tW3btqj8TjUx1lrfBYqEMaYzUAwMs9YuCVg+CfiFtTbtGJ//GS5ZjrHWvuotawesAi6z1i72lv0DaGut/cmxypSdnW3L/2hFRCT+XPeI/3VnTojONo0xy6212VW9V5tXml8CZUCHoOUdgO01fdAYMxp4GhhbnjA9GUAnYKExpnxZA+8zpUCGtXZ95EUXERGpxTZNa+1hXCees4PeOhvXi7ZKxphLcFeYV1lrXwx6+wOgD65qtvzxCq4HbSZQGHHBRUREPLV5pQnwMPCMMWYZ8C5wI9AZmAFgjHkawFo71nt9KS5hTgSWGGM6enEOW2t3W2u/AdYEbsAY8xWQYK2ttFxERCRStZo0rbWzjTFtgHtx1aprgJHW2i3eKsHjNW/ElfER71FuMaG0DouIiERBbV9pYq2dBkyr5r3hNb32Gf+qcMolIiJyLJp7VkRExCclTREREZ+UNEVERHxS0hQREfFJSVNERMQnJU0RERGflDRFRER8UtIUERHxSUlTRETEJyVNERERn5Q0RUREfFLSFBER8UlJU0RExCclTREREZ+UNEVERHxS0hQREfFJSVNERMQnJU0RERGfQkqaxpgGxpgGAa87GmOuNcacHv2iiYiIxJdQrzRfB24BMMY0B/KBPwKLjDFjo1w2ERGRuBJq0swG3vKeXwTsBdoD1wETo1guERGRuBNq0mwOfOU9/zHwsrX2W1wiPTmK5RIREYk7oSbNz4DTjTHfA0YAC7zlrYED0SyYiIhIvEkIcf2HgWeA/cAWYIm3fCiwOorlEhERiTshJU1r7RPGmOVAF2CBtfaI99Ym4LfRLpyIiEg8CfVKE2ttPq7XbOCy16NWIhERkTgV8uQGxpibjTFrjTEHjDHdvWV3GWMuiX7xRERE4keokxtMAO4F/hcwAW99DvwqesUSERGJP6Fead4IXGetfRQoDVi+AsiIWqlERETiUKhJ8wfAmiqWfws0jbw4IiIi8SvUpFkAZFWxfCSwLvLiiIiIxK9Qe88+BDxujGmGa9McbIy5ArgTuDrahRMREYknoY7T/LsxJgH4A9AMN9HB58Ct1trZMSifiIhI3AhnnOZMYKYxpi3QwFq7M/rFEhERiT8hJ81y1tovo1kQERGReHfMpGmM+QgYZq3dY4xZDdjq1rXW9o1m4UREROKJnyvNl4CSgOfVJk0REZET2TGTprX29wHPJ8e0NCIiInEs1Gn03jLGfL+K5S2NMW9FrVQiIiJxKNTJDYYDjatY3gQ4I+LSiIiIxDFfvWeNMYGzAPU1xuwOeN0QGAEUR7NgIiIi8cbvkJN8XAcgC8yv4v2DwC3RKpSIiEg88ps0u+GmzSsA/h/wRcB7h4Gd1tqyKJdNREQkrvhKmtbaLd7TkG9aLSIicqLwM7nBRcCr1tpvvefVstb+K2olExERiTN+rjRfBDoCO73n1bG4TkEiIiInJD+TGzSo6rmIiEh9oyQoIiLik982TV/UpikiIicyv22afqhNU0RETmghtWmKiIjUZ0qIIiIiPmmcpoiIiE8apykiIuKTxmmKiIj4pCQoIiLiU8hJ0xiTZYx52hiT7z2eCbrf5rE+f7MxptAYc8gYs9wYU+3Nq40xnYwxzxljPjHGlBlj/lHNei2NMY8ZYz43xpQYYz41xlwS6ncTERGpSUhJ0xjzC+ADoBPwhvfoACwzxlzu4/NjgEeBPwD9gfeAN40xXav5SCLwJTAVyKsmZiNgAdADuARIA64CCv1+LxERET/83k+z3P3Ab621fwhcaIz5NfA/wLPH+PztwD+stTO917cYY84BbgJ+HbyytXYzcKu3jdHVxPwl0A44w1p72Fu2+ZjfREREJEShVs+2A56vYvkLQPuaPmiMaQwMAOYHvTUfOC3EcgT6KfAu8BdjzHZjzDpjzGTvClRERCRqQr3SfBsYDnwatHw4sPgYn22LG5KyI2j5DuCsEMsRqDtwJvAccB6QAvwVaA5MDF7ZGHM9cD1A586dWbRokQvSvTstWrRg1apVALRp04aMjAyWLFkCQEJCAkOGDGHFihXs3bsXgOzsbHbs2MHWrVsB6NGjB4mJiaxZswaA9u3b07NnT3JzcwFITExk8ODB5Ofns3//fgAGDRpEUVERxcXFAKSlpdGwYUPWrVsHQMeOHenWrRtLly4FoGnTpgwaNIi8vDwOHjwIwODBgyksLGT79u0ApKenU1ZWxvr16wFISkoiOTmZvDxXw928eXOys7NZunQpJSUlAAwZMoQNGzawc+dOAHr37k1JSQkbN24EoEuXLnTo0IH8/HwAWrZsSVZWFrm5uZSWlgIwdOhQ1q5dy65duwDo168f+/bto6CgAICUlBRat27NihUrAGjVqhX9+vVj8eLFWGsxxjBs2DBWrVrFnj17AMjKymL37t1s3rxZv5N+J/1O9fJ3Go5f27Zti8rvVBNjra15hcoTGnQCJgMvAe97y04FLgImW2un1RCnM1AMDLPWLglYPgn4hbU27RjleA340lp7VdDyDUAToJu1tsxbdj3wZ6C5reELZmdn2/I/WhERiT/XPeJ/3ZkTorNNY8xya212Ve+FO2F7xdVagL8A1SZNXIeeMlzHoUAdgO0+ylGdbcC35QnT8zHQDHd1+0UEsUVERCocs03TWtvA56PG2YC8TjrLgbOD3job14s2XO8CqcaYwO/SEziAS9QiIiJRUduTGzwMXGWMudYY08sY8yjQGZgB4I3/fDrwA8aYTGNMJtASaO29Tg9YZTrQGnjUGJNmjBkB/B6YVlPVrIiISKjCmdyglTHm58aYu40xkwIfx/qstXY2MAG4F1gJDAFGWmu3eKt09R6BPvQeZwDne8/fCIi5FfgxrmfuSlwC/htwT6jfTSRezZs3j7S0NFJTU5k6depR7y9ZsoSsrCwSEhJ48cXvWlS2bNlCVlYWmZmZZGRkMGPGjIr3Dh8+zPXXX0/Pnj055ZRTeOmll2rlu4jUZSH1njXGnAq8DpTghp8U4zoHleDGRt53rBheZ6Eq2z6ttcOrWGZ8xHyfyIatiMStsrIyxo0bx4IFC0hOTmbgwIGMGjWK9PTvKly6du3KP/7xDx566KFKn+3UqRNLly4lMTGR/fv307t3b0aNGkXnzp25//77ad++PRs2bODIkSPs3r27tr+aSJ0T6pCTPwL/BMYDe3FDPb4BZgFPRrdoIgKwbNkyUlNT6d69OwCXXnopc+fOrZQ0U1JSAGjQoHLlUePGjSuel5SUcOTIkYrXf/vb3/jkk08qPte2bdtYfQWRE0ao1bN9gce9tsIyINFauwO4CzcURUSirLi4mC5dulS8Tk5Orhjf5sfWrVvp27cvXbp04a677qJz58589dVXAPz2t78lKyuLiy++mB07godQi0iwUJPm4YDnO4AfeM/34zr0iEic6dKlCx999BGffvopTz31FDt27KC0tJSioiJOO+00VqxYweDBg5k48ai5QEQkSKhJcwUw0Hu+CPgfY8yVwGPAR1Esl4h4kpKSKmZfASgqKiIpKSnkOJ07d6Z379688847tGnThmbNmnHRRW7ukosvvrhiZhkRqV6oSfMe4HPv+b24iQP+ArTi6MkORCQKBg4cyMaNGyksLOTw4cPk5OQwatQoX58tKiqqmB5uz5495ObmkpaWhjGG888/v2IayYULF1ZqIxWRqoXUEchamx/w/Avg3KiXSEQqSUhI4PHHH2fEiBGUlZVx9dVXk5GRwaRJk8jOzmbUqFF88MEHXHjhhezZs4dXX32V3/3ud6xdu5aPP/6Y//qv/8IYg7WWiRMn0qdPHwAeeOABrrjiCiZMmEC7du34+9//fpy/qUj8O+bcs1V+yJiTgV7ey3XW2oKolqqWaO5ZEZH4Vhfnng0M1AY3tGQUcOS7xeY14Gpr7a6ISioiIhLHQm3T/D8gFTc7TxPvMRToBsys4XMiIiJ1XqiTG4wAfmStXRqw7F1jzA3Af6JXLBERkfgT6pXmF7gZgIIdAFQ1KyIiJ7RQk+Z9wCPGmIpBYt7zP+Fj3lkREZG67JjVs8aY1UBgF9tuwGZjTPk8XknAIaA9rs1TRETkhOSnTfPFY68iIsdLKF3yIXrd8kXqo2MmTWvt72ujICIiIvEu1N6zABhjzgTScdW2a621i6JZKBERkXgU6uQGScDLwAC+m4O2szEmH7jQWvt5tR8WERGp40LtPfsY7j6aqdbaLtbaLkAPb9lj0S6ciIhIPAm1evZsYLi1trB8gbW2wBhzK7AwqiUTERGJM6FeaULl4Sc1LRMRETmhhJo0FwJ/McZ0KV9gjOkKPIKuNEVE5AQXatK8FfgeUGCM2WKM2QJs8pbdGu3CiYiIxJNQ2zR3Af8PGA6c4i372FqrydpFROSE5ztpGmMaAl8D/ay1C4AFMSuViIhIHPJdPWutLQO2AI1jVxwREZH4FWqb5n8DU40xbWNRGBERkXgWapvmRNxdToqNMUUE3VvTWts3WgUTERGJN6EmzRdxYzJNDMoiIiIS13wlTWNMM+CPwE+BRrgxmbdYa7+MXdFERETii982zd8DVwGvA7OAs4DpMSqTiIhIXPJbPXsRcI21NgfAGPNP4F1jTEOvV62IiMgJz++VZhfgnfIX1tplQCnQORaFEhERiUd+k2ZD4HDQslLCvIm1iIhIXeQ36RngWWNMScCyJsBMY8yB8gXW2lHRLJyIiEg88Zs0n6pi2bPRLIiIiEi885U0rbW/jHVBRERE4l04N6EWERGpl5Q0RUREfFLSFBER8UlJU0RExCclTRGRIPPmzSMtLY3U1FSmTp161PslJSWMGTOG1NRUBg0axObNmwH49ttvufLKK+nTpw+9evViypQpFZ/585//TEZGBr179+ayyy7j0KFDtfV1JIqUNEVEApSVlTFu3DjefPNN1q1bx6xZs1i3bl2ldZ588klatWrFp59+ym233cZdd90FwAsvvEBJSQmrV69m+fLlPPHEE2zevJni4mIee+wx8vPzWbNmDWVlZeTk5ByPrycRUtIUEQmwbNkyUlNT6d69O40bN+bSSy9l7ty5ldaZO3cuV155JQCjR49m4cKFWGsxxvDNN99QWlrKwYMHady4MS1btgSoWFZaWsqBAwfo3FmzkNZFSpoiIgGKi4vp0qVLxevk5GSKi4urXSchIYGTTjqJXbt2MXr0aL73ve/RqVMnunbtysSJE2ndujVJSUlMnDiRrl270qlTJ0466SR+/OMf1+r3kuhQ0hQRiZJly5bRsGFDPv/8cwoLC/nTn/5EQUEBe/bsYe7cuRQWFvL555/zzTff8OyzmlStLlLSFBEJkJSUxNatWyteFxUVkZSUVO06paWlfP3117Rp04bnnnuOc845h0aNGtG+fXtOP/108vPz+c9//kO3bt1o164djRo14qKLLuK9996r1e8l0aGkKSISYODAgWzcuJHCwkIOHz5MTk4Oo0ZVvhfFqFGjeOopNyX3iy++yJlnnokxhq5du/LWW28B8M033/D+++9zyimn0LVrV95//30OHDiAtZaFCxfSq1evWv9uEjklTRGRAAkJCTz++OOMGDGCXr16cckll5CRkcGkSZN45ZVXALjmmmvYtWsXqampPPzwwxXDUsaNG8f+/fvJyMhg4MCB/PKXv6Rv374MGjSI0aNHk5WVRZ8+fThy5AjXX3991Mse7lCZf/7zn2RmZlY8GjRowMqVKwGYPXs2ffv2JSMjo6KXcH1mrLXHuwzHTXZ2ts3Pzz/exRCJyHWPhLb+zAmxKIUcb2VlZfTs2ZMFCxaQnJzMwIEDmTVrFunp6RXrTJs2jY8++ogZM2aQk5PDyy+/zOzZsyvFWb16NT/96U/ZtGkTu3bton///ixfvpx27dpx5ZVXMnbsWH70ox/V2vcK5e87Wn/bxpjl1trsqt7TlaaIyAkgkqEygWbNmsWll14KQEFBAT169KBdu3YAnHXWWbz00ku18G3il5KmiMgJIJKhMoFmz57NZZddBkBqairr169n8+bNlJaWMmfOnEqdpOojvzehFhGRE1xeXh7NmjWjd+/eALRq1Yrp06czZswYGjRowGmnncamTZuOcymPL11pioicACIZKlMuJyen4iqz3Pnnn09eXh5Lly4lLS2Nnj17xvBbxD9daYqIhOB4dEzxI3CoTFJSEjk5OTz33HOV1ikfKjN48OBKQ2UAjhw5wvPPP88777xT6TM7d+6kffv27Nmzh2nTpvH888/X2neKR0qaIiIngMChMmVlZVx99dUVQ2Wys7MZNWoU11xzDVdccQWpqam0bt260qTxS5YsoUuXLnTv3r1S3PHjx7Nq1SoAJk2aVO+vNGt9yIkx5mbgDqATsBaYYK19p4b1hwEPAxnA58CD1toZAe83BCYDl3sxtwH/BCZba0trKouGnMiJQENOale8XmmeqOr1kBNjzBjgUeAPQH/gPeBNY0zXatbvBrzhrdcfmAL8xRjzs4DV7gLGAbcCpwDjvde/jtHXEBGReqq2q2dvB/5hrZ3pvb7FGHMOcBNVJ7kbgc+ttbd4rz82xgwCJgLlg4VOA1611r7qvd5sjHkFGBSTbyAiIvVWrV1pGmMaAwOA+UFvzcclvqoMrmL9fwPZxphG3utc4IfGmFO87aQDZ+KuUEVERKKmNqtn2wINgR1By3cAHav5TMdq1k/w4gE8ADwDrDPGfItrJ33KWjstGoUWEREpdyL0nh0DjAV+jkuYmcCjxphCa+2TwSsbY64Hrgfo3LkzixYtAqB79+60aNGiopdYmzZtyMjIYMmSJYDrmTZkyBBWrFjB3r17AcjOzmbHjh0V45569OhBYmIia9asAaB9+/b07NmT3NxcABITExk8eDD5+fns378fgEGDBlFUVFQxc0daWhoNGzZk3bp1AHTs2JFu3bqxdOlSAJo2bcqgQYPIy8vj4MGDAAwePJjCwkK2b98OQHp6OmVlZaxfvx5wY7OSk5PJy8sDoHnz5mRnZ7N06VJKSkoAGDJkCBs2bGDnzp0A9O7dm5KSEjZu3AhAly5d6NChA+Udp1q2bElWVha5ubmUlrr+VkOHDmXt2rUVM4z069ePffv2UVBQAEBKSgqtW7dmxYoVgBs43a9fPxYvXlxx1/thw4axatUq9uzZA0BWVha7d++umFhav9PRv9N354/+HDlyRL9TBL8TDPe9r8uPL/r/FMnv5H9/b9u2LSrHvZrUWu9Zr3r2AHCZtfaFgOV/BXpba4dV8ZklwGpr7biAZRcDzwHNrLXfGmO2Ag9Zax8NWOde4CprbWpNZVLvWTkRqPds7aqrvWdVbv/iovestfYwsBw4O+its3G9Y6uytJr1862133qvmwFlQeuUodmOREQkymq7evZh4BljzDLgXVzv2M7ADABjzNMA1tqx3vozgF8ZYx4BngBOB64CAud5ehW42xhTiKue7Y/rpft0jL+LiIjUM7V6NWatnQ1MAO4FVgJDgJHW2i3eKl29R/n6hcBIYKi3/j3ArdbawHvT3AK8CEwDPgb+BMz01hURiSvh3iga4KOPPmLw4MFkZGTQp08fDh06BMDy5cvp06cPqamp3HrrrUfd7kuip9arMK2106y1KdbaRGvtAGvtkoD3hltrhwetv9ham+Wt3y1wNiDv/X3W2gnW2h9Ya5taa7tba39jrT1US19JRMSXsrIyxo0bx5tvvsm6deuYNWtWReeXck8++SStWrXi008/5bbbbuOuu+4C3ATrl19+OTNmzGDt2rUsWrSIRo3cyLubbrqJmTNnsnHjRjZu3Mi8efOiXvZwk/3mzZtp2rQpmZmZZGZmcuONN1Z8Zvbs2fTt25eMjIyK7xnv1O4nIlJLIrlR9Pz58+nbty/9+vUDXE/Xhg0bsm3bNvbu3cupp56KMYaxY8cyZ86cqJY7kmQPcPLJJ7Ny5UpWrlzJjBnuumfXrl3ccccdLFy4kLVr17J9+3YWLlwY1XLHgpKmiEgtieRG0Rs2bMAYw4gRI8jKyuLBBx+sWD85ObnGmJGKJNlXp6CggB49etCuXTsAzjrrLF566aVq148XSpoiInVAaWkpubm5/POf/yQ3N5eXX3651q7MIkn2AIWFhfTv359hw4ZV3HosNTWV9evXs3nzZkpLS5kzZ06l+4HGKyVNEZFaEsmNopOTkxk6dCht27alWbNmjBw5khUrVpCUlERRUVGNMY+nTp068dlnn/Hhhx/y8MMP8/Of/5y9e/fSqlUrpk+fzpgxYzjjjDNISUmhYcOGx7u4x6SkKSJSSwJvFH348GFycnIYNWpUpXXKbxQNVLpR9IgRI1i9ejUHDhygtLSUxYsXk56eTqdOnWjZsiXvv/8+1lqefvppLrjggqiWO5Jkn5iYSJs2bQAYMGAAJ598Mhs2bADg/PPPJy8vj6VLl5KWllYn7tWppCkiUksCbxTdq1cvLrnkkoobRb/yyisAXHPNNezatYvU1FQefvjhip6qrVq14vbbb2fgwIFkZmaSlZXFeeedB8C0adO49tprSU1N5eSTT+bcc8+NarkjSfZffPEFZWVu/pmCggI2btxYcaPr8unr9uzZU/Ed4t2JMPesiEidMXLkSEaOHFlp2X333VfxvEmTJrzwwgvBHwPg8ssv5/LLLz9qeXZ2dsXcr7EQmOzLysq4+uqrK5J9dnY2o0aN4pprruGKK64gNTWV1q1bk5OTA8CSJUuYNGkSjRo1okGDBsyYMYPWrVsDMH78+Ip5bydNmlQnrjSVNEWiaN68eYwfP56ysjKuvfZa7r777krvl5SUMHbsWJYvX06bNm2YPXs2KSkpbN68mV69epGWlgbAqaeeWtE1f/ny5Vx11VUcPHiQkSNH8uijj2KMqfXvJvVbuMn+Zz/7GT/72c+qjDlr1qzoFrIWqHpWJEpiMZYNamfguoj4o6QpEiWxGMtWGwPXRcQ/JU2RKInFWLbaGLguIv6pTVMkDpSPZWvTpg3Lly/npz/9KWvXrj3exZJaVlfveVmfKGlK2MLt9FLus88+Iz09ncmTJzNx4sSK5WVlZWRnZ5OUlMRrr71WW18nYqGMZUtOTq40ls0YQ2JiIlB5LFu8D1wXgfqV7FU9K2GJtNMLwO23317leLJHH32UXr16xbT8sRCLsWy1MXBdRPxT0pSwRNrpZc6cOXTr1o2MjIxKnykqKuL111+vE4Ocg0UycH3JkiX07duXzMxMRo8eXWksW6wHrouIf6qelbBU1eklLy+v2nUCO700adKEBx54gAULFvDQQw9V+syECRN48MEH2bdvX+y/RAzEYixbrAeui4h/utKUWjd58mRuu+02mjdvXmn5a6+9Rvv27RkwYMBxKpmISM10pSlhiaTTS15eHi+++CJ33nknX331FQ0aNKBJkyYUFxfzyiuv8MYbb3Do0CH27t3L5ZdfzrPPPlvbX09EpEpKmhKWwE4vSUlJ5OTk8Nxzz1Vap7zTy+DBgyt1eikfgwjuqrN58+b86le/AmDKlCkALFq0iIceekgJU0TiipKmhCWSCZzro1C65EPd75YvcqJS0pSwRXK3hnKTJ0+ucvnw4cMZPnx4pEUUEYkqdQSSemfevHmkpaWRmppaMeQjUElJCWPGjCE1NZVBgwaxefNmwA2zyczMJDMzk379+vHyyy9X+lxZWRn9+/fnJz/5SW18DRE5DpQ0pV6JZFKG3r17k5+fz8qVK5k3bx433HADpaWlFZ+rq5MyiIh/SppSr0QyKUOzZs1ISHAtGocOHap0T8u6PCmDiPinNk2JiUjnogx3Xttly5Zx/fXXA2CtZfLkyVx44YUVMa+++mr279/P1KlTufvuu0OalKFt27bk5eVx9dVXs2XLFp555pmKJFrXJ2UQEX90pSlxJxZVqOUx77nnHkaPHl1lTD8GDRrE2rVr+eCDD5gyZQqHDh2q85MyhNvGu2DBAgYMGECfPn0YMGAAb731VsVnZs+eTd++fcnIyDhqzmGRukxJU+JOLKpQy2NmZWVRXFxcEbOmSRmASpMyBOrVqxfNmzdnzZo1vPvuu7zyyiukpKRw6aWX8tZbb3H55ZfHZN9EWyQnKG3btuXVV19l9erVPPXUU1xxxRUA7Nq1izvuuIOFCxfypz/9iRkzZpCUlBS1hDxr1iz69OlD3759Oeecc/jyyy9jtHdEjqakKXEn0ps55+XlkZGRQZ8+fZgxYwYJCQkV65dPypCYmMhnn30W0p1ICgsLKzr+bNmyhU8++YSUlBSmTJlCUVERmzdvJicnhzPPPLPOTMoQyQlK//796dy5MwAZGRkcPHiQkpISCgoK6NGjB61bt2bcuHFMmjSJn/zkJ1FJyKWlpYwfP563336bBx98kGXLltGzZ8+oJOR9+/ZV9I7OzMykbdu2TJgwIWr7Wk4MatOUE055FerHH3/MlVdeWemuIOWTMlx99dUcPHiQO++80/ekDLm5uUydOpVGjRrRoEEDpk2bRtu2bY/X14yKSCbeD/zuL730EllZWSQmJpKamsr69euZO3cuJ598Mu+99x6HDx+uSMjp6ekVn5s7d27FWN3Ro0fzq1/9qiIhlwtMyA0aNMBay969exk3bhznnHMOQ4YM4YknnmDUqFGVYgcm5JycHO666y5mz55dkZA7d+7MmjVrGDFiBMXFxbRo0YKVK1dWfH7AgAFcdNFFUdnPcuJQ0pS4E8m8toECq1ADY44cOZLx48cD8Otf/xrwNynDFVdcUXHFU536OCnD2rVrueuuu5g/fz4ArVq1Yvr06dx+++18/fXXXHHFFWzatCkqCRlg+vTp9OnTh9LSUpKSkrjhhhv4+uuvI07I5fEBNmzYwM6dOznjjDOiu7OkzlP17AkuFp08zjnnHPr160dGRgY33nhjxc2ToyWSmzlXV4XqJ2Z9FMoJChzdxltUVMSFF17I008/zcknn1zxmfPPP58pU6YwatQo0tLS6NmzZ1jlK0/ITzzxBADffvst06dP54EHHuDyyy+nb9++TJkyJeQq/HLBCblcTk4OY8aMqTSsSASUNE9osejkAfD888+zatUq1qxZwxdffHHMqfJCFcnNnHNzc+nXrx+ZmZlceOGFFVWo1cWs7yI5Qfnqq68477zzmDp1Kqeffnqlz+zcuZOkpCQKCgoqbqIdjYRcXn3asWNHjDFccsklvPfee2F99+CEHCgnJ4fLLrssrLhyYlP1bBwId0ziggULuPvuuzl8+DCNGzfmj3/8I2eeeSYA99xzDzNnzmT37t10794dICptSomJibRs2RJwB7nDhw/H5Gw83Hlta6pCrSpmsEjHl9Y1kUy8//jjj/Ppp59y3333Vfw28+fPp3379owfP56VK1eyadMmHnroIVJSUkK6E051CTkpKYl169bRrFkztm7dyoIFC+jVq1fIVfjVXSEDrFq1itLS0jo7hEhiS0nzOCu/GlywYAHJyckMHDgw4g4N4KrHUlJSuPnmmyviRKtNCWDEiBEsW7aMc889l9GjR8dk30jtCPcE5d577+Xee++tMuasWbMAeOONN5gwYQKPPvpoVBJy586d+d3vfsftt99OQUEBpaWlPPvss5xzzjkRJ+TAsusqU6qj6lmfYtE2uHz5cnr27Mm2bdt45JFHaNSoUVS6/AOceuqptGrVKuLvXV0V1r///W+2bdtGSUlJpe8kEmjkyJFs2LCBTZs2cc899wAuIZdXAZcn5E8//ZRly5ZV1Irce++9fPPNN6xcubLi0b59ewBuvPFGPvnkE+bMmcPWrVsZMmRISFX4gQm5fHjJzp07K8r8/PPPK2lKtXSl6UOsrgZvuukmrrnmGjZt2sTGjRuZN29eVK8Gk5KSsNZWvI5mFRa4A94FF1zA3LlzOfvss8PdvSGrb1WoUrVYXCEDFBQURK+QcsJR0vQhcAA4RKdtcPfu3ezdu5eePXtSUFDA2LFjmTNnDkOGDAm5fMFd/ssNHDiQI0eOUFhYSFJSUlTalPbv38++ffvo1KkTpaWlvP766+qWfwLTzbNFKlPS9CEWA8CLi4tJTk6udKVXXFwc1avBhIQEGjduHNVOHtZaRo0aRUlJCUeOHOGHP/whN954Y5T2tNQnSshSFylp1pKargY3btzI559/zpEjR6JyNRgoISGBDRs2VFoWaRXWBx984Os7ixwvSsgSK+oI5EMsBoAnJSVRVFRU0eV/woQJ5ObmRq1Dw5133klycjIHDhwgOTm5oupYRETCpytNHwIHgEerbbBTp060bNmS999/n3PPPZfMzExuueWWio4NkV4NPvjggzz44IPR+PoiIuJR0vQhVgPAp02bxlVXXcXBgwc599xzK00sXhvUC1VEJDRKmj7Font7dnY2a9asiW5BRUQkZpQ045yuBkVE4oeSZhQosYmI1A/qPSsiIuKTkqaIiIhPSpoiIiI+KWmKiIj4pKQpIiLik5KmiIiIT0qaIiIiPilpioiI+KSkKSIi4pOSpoiIiE9KmiIiIj7VetI0xtxsjCk0xhwyxiw3xpxxjPWHeesdMsYUGGNujDSmiIhIOGo1aRpjxgCPAn8A+gPvAW8aY7pWs3434A1vvf7AFOAvxpifhRtTREQkXLV9pXk78A9r7Uxr7cfW2luAbcBN1ax/I/C5tfYWb/2ZwFPAxAhiioiIhKXWkqYxpjEwAJgf9NZ84LRqPja4ivX/DWQbYxqFGVNERCQstXml2RZoCOwIWr4D6FjNZzpWs36CFy+cmCIiImEx1tra2ZAxnYFiYJi1dknA8knAL6y1aVV8ZgPwrLX2voBlQ4HFQGfAhBHzeuB672UasD4KX686bYEvFTvmcRVbsRU7/mLXxTKX+4G1tl1VbyTEcKPBvgTKgA5ByzsA26v5zPZq1i/14plQY1pr/xf4X9+ljoAxJt9am63YsY2r2Iqt2PEXuy6W2Y9aq5611h4GlgNnB711Nq7Ha1WWVrN+vrX22zBjioiIhKU2rzQBHgaeMcYsA97F9Y7tDMwAMMY8DWCtHeutPwP4lTHmEeAJ4HTgKuAyvzFFRESipVaTprV2tjGmDXAv0AlYA4y01m7xVukatH6hMWYk8GfcEJLPgVuttS+FEPN4imU1cF2MXRfLrNiKrdjxFTfWsWtUax2BRERE6jrNPSsiIuKTkqaIiIhPSpoxYowxAc/rzH4OKrepad14UlfLLSJ1S505mNc11lrrTfOHtfZI+fJoHNBjmYS9crcsfx6r7URbXS13XTqhClT+d6wTFKlv1BEoBowxHYHRQBZu1qH3gRettUujvB2D+w2PVPVeqMnDGJOKG87zQyAFN072VeBta+2OcOMGxG9orS0L57PHiFsnyx0Qv4O1docxpglQaq0tjVLchsCRWJxEGGMSgO9Za7+OdmyReKakGQPGmNeBVOBj3DCZ04DewKfAVOCZcA/CxphxwFogz1p7MGB5A9xFVtg/qDFmMdACyMXNqHQmMATYhbv92p+stWWRJKCAshLFZF9Xy50JjAVG4uZKzgcWAAuBD6NR5oBym2glfmPMOcAvgX5AY1x55+JOUr6JQvyYnaQYY1oA3wN2As2AA1X9nmHGVrmPjt0J93/zIG6e8O3W2kNRip0QrRPMkFhr9YjiA3fA/gJI9l43AU7CJc6ZQAFwe5ixhwBHgCXAs8CtQL+gdRKB3wKdQoz9Q6/crYKWdwZ+h5vjdxrQMMyy3w/8DGgRtLwh3slbmHHrZLm9GMuBRcB/AZcDs4C9wB7c2OTveeuFvB3g78ANVeyXBKBBBGUegpuveT5ws/e3loebznINcHEk+yRoWw2qKitu+sxw9snPcSclu7zHa8A4IC0wdhTK3TCSfXwClftm3IngIWCf97c+FfgxkBjlcof1/zus7dXWhurLA5gMvFXNey2Be4D9QFYYsf+Mmx7wPu8/zgfA27jZksbiqiYH4RJr8xBjT8RVIzf1Xlf6D+Qd1L8Gzgyj3OXJ/kPgHeAh3CT7ges0BR4DutaTcg/HJfsmVbx3DbAFeJOgZB1iuTcAnwEvABdUUe6/Aekhxn4RmFnF8lNwA86LgbGhltmL0Qd3gnMWkBD0XqQnV0OBzcDTwLnAld7+LQG2AuMiiJ3t/X8cDTQKei+hnpZ7uPe38ADQyyv7TO9vshh3MpoQZuzTgVXAtUDjKsrdAHdi1TqS71Dt9qMdsL4/vAPWF8A51byfgDtLvy2M2M8Aj3nPGwPnAH8C3sIl0NdwVcALwoid7pX7F0HLTcDzucDvw4j9IC653wg8jjvjXIm7N+qvcVXX/8870IeUJOpwuW/0YnXwXicGHgCAYbhb3F0YRrn/xyvjBbiTite8A+8G4K/AqcDAMMv9FvDfQX/PDbznTXBXuCuA9mGU+ylcNd4HwH9wJ6BZQesMxp0khnQwBJ4H/reK5c287ewCfhtqmQPKfdjbv5uA/+Pok6vTgBxCvCKqw+V+DniiiuWNvL/9ncCTEZS7DNiGu3nHPOAnQeuc7i0PKzHX9KjtuWfrg+W4M8HHjTH/h6tW+cR+19bTHHegD2du3AeALlAxAf48YJ4xpj3wI2AE0B1XbRuq9biz2ceMMcOAObh2011Q0bkpC5e4Q9UWKLDWzvDa17JwB7+BwCjgQqAbMM9auy/Mcv+ljpX7NVytwy+Ah621JV55yzvvLPbaas8AXg4x9vdwB5TXrbWlxpiXcAl+MO6kLgdIAt4Mo9xzgN8YY56x1m6wXpuS1/Z6yLst39tAMu7AGIo+uNqUItxV0NnABcaYz3Anmq/ialTOsN6RMQSNcQdavPIm4vbzAWCy9/te6n2vzSHG7om7csrHnUQNBZ41xuwBXsH97f0C6G1Dbzusq+U+DLQ2xjTx/i7KO7l9C8wwxnwL3GGMybDWrg0xdgpu2tTXvHJfDLzgxXwBV/NzKdDZxqLNM9pZWA8LLrFNw53B5eGuUu7FXZ28AqyPIHaC928DgtqngPOBryOInYi7MlmCO9t/GXgSNyn+u8CKMON2BIZXsfwkXJvkfbirnpFhxm+GaxfMxZ20xHW5+a4D3l24qvr/AFfj/pOXr9MdV/0Wchsh7sTs1CqWN8WdsF0b7v4G2uFOBDfhDrhDCbhaBS4C9oURtwfuPrlXe69b4E4Y7sJdbS3DHdyPEFTV7DP+L3BXZacFLW/o/dsaKAQGhxg3BXfwvsl73QTXY/4SXCe0D7zf8Qgwqh6VewTu9o2XBC0vP359D9d0MCzEuJ1xV8Q3lO8HoBXuRPZur9wlXrnPD7Xcfh7qPRtDxpi+uDa103AJrhWuTfJha+3qKG7H4OrwXwRaWmvPijDeKcBPgExcmTvhDuzTrbWFkZX26J6+xpjzgVnW2uYRxu2KO3E4FXeV2IEwyx3ca9UrcwOgLJrlNsZciDswdsddUXyNu0rsD+y21g4NN3bANoK/yyjgeWttkzDjpeI6eQzDVY8VAQdwB8JTgNestXeGGbeBtXZD0PIOuKv8G3AnMd8PMa7xyjYT16TxJvASsNBa+5X3247BVYO2CKPcHXCdtgqClrfA/a43A2MiLPe5wBt1qNyJwB+AW3AnO08BL1hrdxlj2uJqah6x1rYMo9xtgGbW2q1By8uPsbfgbuwRUrl9b19JMzq8apO+eGfawEe4+35u995Pw7UrHbYh7vSA2BfiDqprcW2XW6213xhjGlhrj3h/NCdZr2oyxG2Ud6D5Nmh5O2vtF6HGC2G7DXBX5a2ttZeE8LnmuKucy4CvcNW0y/HutRrLcgecpIRc7mridcG1wWTgqjWTcVXvz1hrQ63iPNa2DPB7XFvqDRHGSsedpKTjrnia4qpX37au+jCS2OUdf0oDls0BvrHW/iLMmC1wtxY8D3dCdQT3/6mh9zrHWjs5knJ72wk+SZkDlFhrx4QZ73u4IT4XAO1xJypRLXcN+zvscnsxfoLr/dsfV0uxA1f+ROD/rLUPRVLuarY5B3dy+7NoxwYlzagxxjyGS5jbcAeQFNyYwbnAAzaCW5VVEfsHuPGfc3BnawXVf/qYsQdYa5cHLWuMuxL8tpqPhbqNhl68KseVee+3sNZ+FULMp3BJcyNunyTjhmusBP5qrV0cQXkDE/JubxsbgNXW2m2RlDvgswkANqjNxRiTaL32zXB5sY/UsL8b4K4wfLdneon9alwbUiHuxO09a+0qbz80tdbuj6TcNWy7Ae4KYhmuZ+67EcZLw7XvdsP93TTBNaEst66vQNQYY74P/Au4y1r7QZgxEq21JV77/FDcyVUXXOKJqNzGmBbBfwfe/m4ZSbkDTxy8sZrpuFs/dsPt778BG22Ux4d6/3f/AjxqrV0ZzdgV21DSjJx3xv0+ruv2cq8Koh1u6MANuLaxCbhqlFCvMv3EHo+rwiGU+MaYHrgrtHW4jhbPWGs/DHjf4Hq7ZQIrQ/2PWU1CjniWGm+f5OE6inxg3SQAJ+HaY67FdSL5b+8R8raqSch7cAn5f621b0dQ9iHW2tygZZVOUkyYg7ariV0pgZbXSoQYtxuuWrApLnH1wV3hfIVrR55iQ++EEhi/PCEPxLWVrscl5Y+stXvKD8DGmOahJOagA/dRJynh7IsaYtd0ktIs1CtvY0wv4HbcFVoB7kTlXWBJOCdpNcT+FNe2uBJ4J7DK0xjT1AZMoBLGdiKemCPM7UZ84lkjG4OG0vr2AH6D+2Ou1Ngd8PoPwCcEdPSIk9iTcInhz7i21mJcgr4T6OKtk4SrxkoOMXYP73NrcB1y+ge9X56Q/x9BY618xJ4A5Aa8Dh6rdSOuE0PPMPZJOq56/VS+62xxEnAd3w3i/x1hDATHtfcd8eLnAKcHvd8Ad/VwPt5QlCjGNriemOHEnoHrudoxYFlXXCedLbgOHxeEuq+9ON1wQ1Q+xrV7rcC1kX6Eq/4+Ofh7hBC7HUcPoSjfx+UdUgxhDIyvJrYhaHxjwN9QKOU+GXfisASYguvY9j5ubOJLwFnh7OsaYi/19vvzwI8j2N8dgCtwTRbB+7z8Aq0h3sQGIZa7ythVrNck1HKHXJZYBa5PD1xb40YgNWBZQsAPWH5guDXOYv8T11OuI67K50pcz7SPvAPXq7gedmvDiB3LhPxDXFL8UdA+KZ/goA3uCuh3YZR7ArFLyL/BTZTwa9xkCaW4KvyH8JIDrs3qSPk+ipPY7wATveeNOPrEbRauc03FwTGE2MdKyF8QfkL+q/d9t3vP04Peb+ht62JCH4d4rNgNAmKHNFYQmO7tk8BeyR1w7bFLcJ2urglznxwr9jcRxP6Lt09244Z+jCQoQXr7ZGLw8uMZO+TvGcvg9eXhHaQ/xl3xXVLVj4Y7S7whXmLjkszPgV8HLW+Na+/5Fe7M80g4/4mIbUJughv2sA2XxJpWsc5Kwpgthdgm5L/i2qBae4+huJqCj739/BFu8oBw9kksY0/29mfggbZRwD4ZgqtWPWqYi4/YsUzIy3BXq7/z/o8cwVVH/gbvigU3DWBBGOWOZew38CbjoIop4nATmryP60EaT7GX4q5ef4nrtV6C63vxF7xJKnBNJp/GU+yQyxLrDdSXB2780Gy+ax/8H9w8tD1xyeMLvLlE4yl2wDYaVbHsIu9gENJ/IGKckL1YTXHVvp/hqpue8sr7Y+9AuzXM//gxScjeAWokcHPQ8sa4M+Sf4NqljwC/jJfYXpwB3gFqBVWM2cNVDR8Kc39PJgYJGddZ7t+4K6gGuFqNEbiTi8+8ffEu7solpNm5Yhnbiz/ei3NK0G/Z2Huejmvj/GG8xMYdo14ArvdeJ3h/F3d5v28ZsBp3JTs+XmKH84hp8Pr2wF2FXImbTP093KDkI7gZUi6Np9hU0x5HQJsMrmpvURT2S9QSsvfZ8nai5rhxd/fj7rSxB9eD9l/AuRGUNyYJ+Vj73zvwhrVPYhU74G8h1duvn3sHqGm49tG7cAPKnw+zrDFJyLjen1dS9VzBJ+NqbRbhqrGPOjE6XrG9ON1wVe2FeJM9BL3fGzfjTjj/d2ISGzee9HxgUBXvNcP1XXg+zP0ds9jhPNR7NkLGmGTcAQXcmc463PyZ3XEH9QPAl9ba3XEa2+AOpuutN6bUe9/gxoUV2xC7nFfXK9HrZVhmrbXGmIeAbGvt8FDLXkXcxriOGQdxV4pf2zBvUWW82yR5XdeH4GalORU3uL4hrmpoprX2zRDjVnvv04B1JuNmdhkRL7GDYjTBTaZ+Nu5AlYG7mpoJPGtDHFYV0Cs2FTfP76m4k8F3cFWy6bhe44U2grGw3v5paI8e3vNPICmSv8FYxfbGlE7BTXzRCFfD9B9cUhuC680+Nt5iB2zjqJ6zxph/4NrXz4jX2L62r6QZPmPMTbiu8v1wCawA1173Nu6m01tr+Hi8xP4G1xZThGvLmGOtXR9ubC9+TBJycBd4E4V7iPrYZtQSso9tDQe+sKHPxRmT2N7+vQD3/ZviqknfsdZ+7SVQi6tW/TIK5YtqQq5mGwZ34lOG+z5LcMNlXoqX2F6cBt6JWxPc8J6huOaYLNwV4rPAvwL/T8VB7Br/LxpjmuLGrE+31r4cL7HDoaQZJuOmcvoU13A+HXdgOQt3S5x0XJXTrdbadaGOVzqOsXvhkudtXuyQb04bq4RsjGmF63DxOl4Vdfn3DvxP5Y1BK7IhTkQey4Qc6Xi34xHbuxp5Etcx6giu97PBncD9B5fINnrrhjP2M2YJOSh2M6/si23A7ErGzbJ1lrX29XiJXcM2K8Y2G2NOstZ+HY24sY4dtJ1GuJqlpXUpdpViXf97oj5w8xvmVfPeEFwVUwHQth7FboNrV7zXe34KrtPPi7jB6v/G65pP6F38b8H1mFuGO5vfhJswPfBGvF1w7TXdQ4zdCtd+OR03nV3gOLvAMWa9CP1WWjXFDnzeC/h+HMW+B3eSMtB7fQpuHuXpuOkKXwXahfo34sVqgWuD+gI3rdoK73d7FzfFX4/A/R9h7OW4uU9zcW3fp4RT5lqI3QjXsa/K4RKBv2ddih3JI5axIyrX8S5AXX3gZuNZh7ttDhx9P8Su3vs/r0exY5mQZ+LG9LXHzcM7BTcOtAx3FXs9bozi/jDLHauEXFdjvwPcXsXyhnw3W9K8UPe1FyOWCbmm2B/g7jIUj7En4Gpm/o7r9NKRo4eDtMRN3H5Ux7o6EPs8wpvEJCaxI3nUykZOxAfuSmoNbuxhYHf5wFt1vQfcWY9ixyQhe3FuA+4JWn4Srmr5b7gq6yOEcUNeYpuQ61xsXA/q6bgrv3beskozIOHu37oG6BdGuWOZkOtq7KW4/grveL9fIa4H9xDcTRjADYF6X7Ejjx3Jo9Y2dCI9cG07BvgpbtaSfbj2nwF8NxPI5d7ylPoQ24sfy4SciDdrDFVMYYdrkw1ndqGYJeS6GtuLcyruyvUBqph2D3cFux/XQzSUuDFLyHU4djtcx6Gfe6+TcU0cG7zfbzluaM8nuInIFTuC2JE+am1DJ+ID+D7uDP9GXHvdfu/xqXfAmVxfYhPjZO/9252gA3jAe5MIY/YV77MxSch1NTbf3eD8Olz73R7cidDZuBsVX4wbu/pBmPs7Jgm5rsbG3a/2NmBEFe/1x02aUD4uW7EjjB3pQ71nQ2SMaY+bOPi/cBNVH+S7uz28j2u8TsVV02yoJswJFTtoO9/HJcjTcPPmnu69tR2XVJ+xIdz7L6DctwM7cQOYt+FmCPmXdfcTNbgD/OfW2tdCLG/5WMHuuHs17qjivUnAVdba7vUhdtB2vo+b+ebnuLvd7MNNNvABbkhFXojxym/m/UvcNH8JuEnIZ+M6NfXFzWCUbq0dWB9ie/Gb4nprH/L+noHv7lpkjLkfGGmt7a/YkceOhJJmiLxBtBm4zgq7cVPD9cH18toJ3BvqgeQEiB3LZF9VufvjOmEUAX+01s6PsNxRT8h1OHZLYJ8NODB4CaMJbkKN3rgkHdbfStC2vk8UE3Jdj13d8DFjTDNcD+O/W2sfUOzoxA6XkmYIvAPRPtzZzZKAZV2BQbh7OXYHLrHWrqgPsb1Y/yAGCbmGcifjqsquw80DelkUyx2thFxXYz+B6427DNhird1bxTqtbMB9LkOIHbOEfCLFrmKdJsAYYJYN4Z62ih0jNdXd6nFUXXoGbt7NKiePxrUx5ePONutLbINrxxkatOwHuDk45+PaSrNiUO7GMSh3F1yb3XzcvLPhlLuuxr4M10b0FW5o0BO4OXdT+W4C9ebAHKBPGPGfwN08vQ/Qspp1WpV/J8WuWOf7oe5rxY7d47hstK4+cDOXLMR1he5B1RNj34Kbu7G+xI5lQj6e5Y4kIdfV2OVDWLrj7ku4GjcD0Ie4wftnAjcBh8OIHbOEfILFvhA36Xt57PIp4nordmSxo/Wo9Q3W9QeuWnAl7kB+Fe4Mv7n3XjPc7DfP1pfYxDCx1dVy18XYuI4tvwGmBi3PAB7BVft+iWs/fTKMcscyISu2Ytfa47hstK4/cG0Ys3EdXr7EtS39DdeLLo8wqq7qcmximOzrarnrYmzctHyneM8bE1TViGtDOgJkhhg3ZglZsRW7th/HZaMnygM3E8svcVUFs3F3ag97/sm6HJsYJvu6Wu66GjtoOw347v6l1wEHwowTk4Ss2Ipd2w/1no2ScO70cCLG9oZDnIeb5OAQboaUF6y1n0RrG9526ky562rsKrZ1Oy6B/jFK8conwy8zxlyHm9mlmWIrdm3FDqs8SpoSK7FM9rFUl05Saiu2F78R7ibiUd9GtBOyYit2rChpishxF+OErNiKHb0yKGmKiIj40+B4F0BERKSuUNIUERHxSUlTRETEJyVNERERn5Q0RUREfFLSFBER8en/A/s5yqLvB57FAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 504x360 with 1 Axes>"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Select any of the avialable backends above you have listed, \n",
    "# In this case we will pick 'ibmq_ourense'\n",
    "backend = provider.get_backend('ibmq_ourense')\n",
    "\n",
    "# Execute the previous circuit on a quantum device\n",
    "result = execute(qc, backend=backend, shots=1024).result()\n",
    "counts = result.get_counts(qc)\n",
    "\n",
    "# Print and plot results\n",
    "print(counts)\n",
    "plot_histogram(counts)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Create your secret number\n",
    "shh = '1010'\n",
    "\n",
    "# Set the number of qubits to represent secret number and an ancilla qubit\n",
    "input_qubits = len(shh)\n",
    "ancilla_qubit = 1\n",
    "total_qubits = input_qubits + ancilla_qubit\n",
    "\n",
    "# Create the quantum circuit\n",
    "qc = QuantumCircuit(total_qubits, input_qubits)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 200.977x385.28 with 1 Axes>"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Add Hadamard gates to the input qubits\n",
    "for idx in range(input_qubits):\n",
    "    qc.h(idx)\n",
    "\n",
    "# Draw the input circuit\n",
    "qc.draw()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 321.377x385.28 with 1 Axes>"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Prepare the ancilla qubit of the circuit\n",
    "qc.x(total_qubits-1)\n",
    "qc.h(total_qubits-1)\n",
    "\n",
    "qc.barrier()\n",
    "  \n",
    "# Draw the prepared circuit\n",
    "qc.draw()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Secret before reverse:  1010\n",
      "Secret after reverse:  0101\n"
     ]
    }
   ],
   "source": [
    "# Before creating the oracle, we need to adjust the qubits \n",
    "# Since they are ordered from left to right, we will reverse the secret number\n",
    "\n",
    "# Current secret value\n",
    "print('Secret before reverse: ', shh)\n",
    "\n",
    "# Reverse order\n",
    "shh = shh[::-1]\n",
    "print('Secret after reverse: ', shh)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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DXsPn8D1/gFERkSIjkNEdIuQfj7EsWPHkJWVhWnTpuGZZ57B9OnTcfbsWRw4cEB0NL8caDqFK1f78J37MkRHISIaVkhfk7BarXj//fdx+vRpfOMb3wjIezz58xcDclwiIpF+9i+Ffu0XsstNV65cwb59+7BmzZqAFQQRkd6F7HJTd3c33G43pk6dGtD38bdtR6Kv7xp+/stqJCZMxt/n5mh+fCIirYRsScTFxcFoNOLChQsBfZ9ALje1tndwOYuIhAj75abx48cjKysL1dXVfLwFEVGAhPSF6xufbpo+fTp+/OMfY/r06ejo6MC+ffvw61//WnS8YTUcPI4/7D0K2w9XYtqdk0THISJSFbLLTQCQmZmJgwcPYvPmzSgpKcHVq1cxbdo0PPLII6KjDauv7xr2HTmJubMSWRBEFBJC+kwi1Fz8+BJefnUPHvm7B1gSRBQSWBJB5na7YTSG7KUgItIZlgQRESnit7RERKSIJUFERIpYEkREpIglQUREilgSRESkiCVBRESKWBJERKSIJUFERIpYEkREpIglQUREilgSRESkiCVBRESKWBJERKSIJUFERIpYEkREpIglQUREilgSRESkiCVBRESKWBJERKSIJUFERIpYEkREpIglQUREilgSRESkiCVBRESKWBJERKSIJUFERIpYEkREpOh/AIYqQHCRMSx/AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 501.977x385.28 with 1 Axes>"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Now that we have the right order, let's create the oracle\n",
    "# by applying a CNOT, where the qubits set to '1' are the source\n",
    "# and the targe would be the ancilla qubit\n",
    "for idx in range(input_qubits):\n",
    "    if shh[idx] == '1':\n",
    "        qc.cx(idx, input_qubits)\n",
    "\n",
    "qc.barrier()\n",
    "qc.draw()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAApoAAAExCAYAAADcPwJPAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/d3fzzAAAACXBIWXMAAAsTAAALEwEAmpwYAAA130lEQVR4nO3de3gV5aH+/XslkAQa5GAUJByUo0kwRAIUUEmiFEGsUgwItWxFuqEhVMHNT3CDB4RSQCRpq2A9gdaWd5sA1baoxS1ZiqIYICrHCIohSAGBjQQ5Jnn/yJWUQDJJYM08Myvfz3VxGSazZt3r8cnkZmbWLF9paWmpAAAAgAALMR0AAAAAwYmiCQAAAFtQNAEAAGALiiYAAABsQdEEAACALSiaAAAAsAVFEwAAALagaAIAAMAWFE0AAADYgqIJAAAAW1A0AQAAYAuKJgAAAGxB0QQAAIAtKJoAAACwBUUTAAAAtqBoAgAAwBYUTQAAANiCogkAAABbUDQBAABgC4omAAAAbNHAdADAlO3bt9e4zjPPPKOJEydarnPttdcGKhJchPnhHMYaCF4c0QQsPPvss6YjwMWYH85hrAFvomgCAADAFhRNAAAA2IKiCVjIzs42HQEuxvxwDmMNeBNFEwAAALagaAIWUlNTTUeAizE/nMNYA97E7Y0MWJEr7T1i5rmjm0vDepp5bgCBYWofUh/3H5MmTVJeXp7jz5uQkKDMzEzHnxcINIqmAXuPSLsOmE4BwKvYhzgnLy9Pfr/fdAzAszh1DlhIT083HQEuxvxwDmMNeBNFE7BQ0yeRoH5jfjiHsQa8iaIJWOjfv7/pCHAx5odzGGvAmyiagIWDBw+ajgAXY344h7EGvImiCQAAAFtQNAELsbGxpiPAxZgfzmGsAW/i9kaAheXLl5uOABdjfjjHC2Pt8/nUs2dP9erVS926ddOPfvQjnTx5Ulu3blVubq4+/vhjFRcXV3pMaGioXnnlFeXm5nLfTAQliiZg4bHHHtOTTz5pOgZcivnhHDePdVhYmCZMmKAJEyaoc+fO1a63Z88e/fGPf1RmZqaOHz9eUTLvuece/fSnP9WyZcu0f/9+B5MD9nP1qfOSkhItWLBAnTt3VkREhLp37y6/36+uXbtq3LhxpuM5Jnt2stb/dXatlyNwsrKyTEeAi3llfgTDPsStY52YmKgNGzYoIyNDnTt31p49e7R06VJNmjRJ9913n37961/rhRde0M6dO9W2bVvNnj1bX3zxhW6++eaKknns2DENGjSIkomg5OojmmPHjtWKFSv06KOPKjExUR999JFGjRqlgwcP6qGHHjIdDwBQjw0ZMkTZ2dmKiIhQfn6+pk6dqr/97W8XnB6Xyk6r33LLLZo3b5569Oih1atXKyQkRMeOHdOtt96qdevWGXgFgP1cWzSXLVumpUuXKicnR0lJSZKklJQUbdy4UStWrFCPHj0MJwQA1Fc33HCDli9frvDwcD3//POaNGmSTpw4Ue36paWlevfdd9WvXz/l5uaqW7duKi0t1ezZsymZCGquPXU+Z84cDRo0qKJkluvUqZMaNmyo+Ph4SdLu3buVlJSkLl266LrrrtMHH3xgIi6CFJ9xDCvMD+e4aawbN26sV155ReHh4Xr22Wc1fvx4y5JZLjQ0VC+99JK6deumU6dOyefzacqUKbriiiscSA2Y4cojmoWFhdq8ebMmT558wfcKCgoUFxen8PBwSdL48eN19913a8KECfroo480fPhwff311woLCwtIFp/PF5DtnOuu6WvUJia5To9Z/8ZvtGHVgkrLzpwsUrtuA+q0Hb8/Rw8MTKnTY4JVVfPrfLt27VLHjh0t18nIyAhUJLiIm+eHqX2IXfsPN491Vf77v/9bHTt2VF5eXq2yS6r0xp/y0+VPPvmkBgwYoHnz5un++++vtL7f77fl9w8QCKWlpbVe15VHNAsLCyVJrVq1qrT8xIkT8vv9FafNv/vuO61du1Zjx46VJPXr10+tW7fWmjVrnA3sgN53Tlfa8/9X6U/rLjeajhX03nzzTdMR4GJemh9e34e4ZazDw8M1fvx4SVJ6errOnDlT42OqKpnr1q3Tr371K5WUlOjnP/+5Lr/8crujA0a48ohmVFSUJCk/P1+33XZbxfL58+dr3759SkxMlFR2dLNly5YVRzcl6ZprrtE333wTsCx1ae219YfV0q4DAd9srSQlJSt7duBfkxdt3769xnUyMjJqvMPBwoULAxUJLuLm+WFqH2LX/sPNY52cnFzptP2QIUMUFRWlDRs26KOPPqrx8dWVTKnsKO1bb72lIUOGaOTIkXr22WcrHpeUlKScnJyAvx7Aaa48otmhQwfFx8drzpw5evXVV/W///u/SktL08svvyxJFUUTAAAn9enT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\n",
      "text/plain": [
       "<Figure size 863.177x385.28 with 1 Axes>"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Now let's close up our circuit with Hadamards applied to the input qubits\n",
    "for idx in range(input_qubits):\n",
    "    qc.h(idx)\n",
    "\n",
    "qc.barrier()\n",
    "\n",
    "# Finally, let's add measurements to our input qubits\n",
    "qc.measure(range(input_qubits), range(input_qubits))\n",
    "\n",
    "qc.draw()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 504x360 with 1 Axes>"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Execute the circuit and plot the results\n",
    "backend = Aer.get_backend('qasm_simulator')\n",
    "result = execute(qc, backend, shots=1024).result()\n",
    "counts = result.get_counts(qc)\n",
    "plot_histogram(counts)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "39485d2efa594303a6a29b7a7709e226",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Accordion(children=(VBox(layout=Layout(max_width='710px', min_width='710px')),), layout=Layout(max_height='500…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/javascript": [
       "$('div.job_widget')\n",
       "        .detach()\n",
       "        .appendTo($('#header'))\n",
       "        .css({\n",
       "            'z-index': 999,\n",
       "             'position': 'fixed',\n",
       "            'box-shadow': '5px 5px 5px -3px black',\n",
       "            'opacity': 0.95,\n",
       "            'float': 'left,'\n",
       "        })\n",
       "        "
      ],
      "text/plain": [
       "<IPython.core.display.Javascript object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "[<IBMQBackend('ibmqx2') from IBMQ(hub='ibm-q', group='open', project='main')>,\n",
       " <IBMQBackend('ibmq_16_melbourne') from IBMQ(hub='ibm-q', group='open', project='main')>,\n",
       " <IBMQBackend('ibmq_vigo') from IBMQ(hub='ibm-q', group='open', project='main')>,\n",
       " <IBMQBackend('ibmq_ourense') from IBMQ(hub='ibm-q', group='open', project='main')>,\n",
       " <IBMQBackend('ibmq_valencia') from IBMQ(hub='ibm-q', group='open', project='main')>,\n",
       " <IBMQBackend('ibmq_santiago') from IBMQ(hub='ibm-q', group='open', project='main')>]"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#Enable the job watcher widget\n",
    "%qiskit_job_watcher\n",
    "\n",
    "# Print all backends with at least 5 or more qubits\n",
    "provider.backends(filters=lambda x: x.configuration().n_qubits >= 5 and not x.configuration().simulator and x.status().operational==True)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'0000': 19, '0001': 27, '0010': 43, '0011': 17, '0100': 2, '1000': 106, '1001': 143, '1010': 546, '1011': 85, '1100': 6, '1101': 3, '1110': 25, '1111': 2}\n"
     ]
    },
    {
     "data": {
      "image/png": "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GT9+fLVy3H///VXft2rVqsan3ke67777qr4fOXJkVe9aEUluc+bM4eabb6aiooIrr7ySO++8s9r60tJSLr30UpYsWULHjh15/vnn6dmzJ/PmzePOO++krKyMli1b8rOf/YzTTjut2r4FBQWsX7+eFStWJLJKodOVZhJryBCQ448/nm7dugGQk5PDvn37KC0tBeD3v/89d911FwAtWrSgU6dOCayViCSjhozTrjxJf//993n66ae55JJLqu335z//udZOgqlGSTOJNWQISKQXX3yR3NxcMjIy2L17NwD33HMPubm5nH/++Wzbti2+FRGRpBevk/SSkhKmTJnC3XffndgKxYmaZ+ugvk0XO3bsYMKECbzzzjt897vfZerUqVX7PP/88zzwwANUVFRw1lln8dBDD4Va5pUrV3LHHXcwd+5cAMrLy9m8eTMnnXQSU6ZMYcqUKdx+++1Mnz79oMe56pH6xX/ylvrtJyKJVdNJelFRUa3bRJ6kR7ZWRZ6kgz9Bv+2222jTpk0CahF/utKMUUOaLlq1asV///d/V83HWmnHjh3813/9F6+99horV65k69atvPbaa1Xr6zIEBKg2BKRy+3POOYdnnnmGY489FoCOHTvSpk2bqqEf559/PkuXLg3jV1Rv9e3stGPHDsaMGVPVU7fS3r17qzodDR06lE6dOnHLLbckqDYizVflSfoTTzwBwLJly/jggw8455xzGrlk4VHSjFFDmi4OP/xwRo4cSatWraptv379evr06cNRRx0FwOmnn17VkxWqDwEpKytj5syZFBQUVDtG5RAQoNoQkN27d/Otb32LBx98kJNPPrlqezPj7LPPZsGCBQC89tpr1ToWJVo8Tkbatm3LsmXLql7f+MY3ND5U5BDicZJeWFhIcXExPXv2ZOTIkaxZs4ZTTz01MRWKEyXNGIV1fzFSdnY2q1evZuPGjZSXl/PSSy9V+6NtyBCQqVOnsm7dOu6///6qK67t27cD8NBDD3HfffcxePBgpk+fzsMPPxzOL6ke4nEyEmnNmjVs376dU045Ja71EEl18ThJv/baa/noo4/YuHEjixYtom/fvlUn7KlK9zQbUfv27fnNb37DxIkTadGiBSeddBIffPBBtW3qOwTk7rvvrvXG+ze+8Q0WLlwYQg0aLqz7KLWZOXMmEydOxMzCLbhIExN5kl5RUcHll19e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\n",
      "text/plain": [
       "<Figure size 504x360 with 1 Axes>"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Choose whichever backend you wish from the list, \n",
    "# For this example, we will use 'ibmq_ourense'\n",
    "backend = provider.get_backend('ibmq_ourense')\n",
    "\n",
    "# Execute the previous circuit on a quantum device\n",
    "result = execute(qc, backend=backend, shots=1024).result()\n",
    "counts = result.get_counts(qc)\n",
    "\n",
    "# Print and plot results\n",
    "print(counts)\n",
    "plot_histogram(counts)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<h3>Version Information</h3><table><tr><th>Qiskit Software</th><th>Version</th></tr><tr><td>Qiskit</td><td>0.20.1</td></tr><tr><td>Terra</td><td>0.15.2</td></tr><tr><td>Aer</td><td>0.6.1</td></tr><tr><td>Ignis</td><td>0.4.0</td></tr><tr><td>Aqua</td><td>0.7.5</td></tr><tr><td>IBM Q Provider</td><td>0.8.0</td></tr><tr><th>System information</th></tr><tr><td>Python</td><td>3.7.8 | packaged by conda-forge | (default, Jul 31 2020, 02:25:08) \n",
       "[GCC 7.5.0]</td></tr><tr><td>OS</td><td>Linux</td></tr><tr><td>CPUs</td><td>8</td></tr><tr><td>Memory (Gb)</td><td>31.40900421142578</td></tr><tr><td colspan='2'>Thu Sep 10 21:48:03 2020 UTC</td></tr></table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import qiskit.tools.jupyter\n",
    "%qiskit_version_table"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
